package com.lemon.smartsafetynew.util.electrical;

import android.graphics.Color;

import java.util.ArrayList;
import java.util.List;

/**
 * 电气火灾检测标准
 * Created by Andrew on 2018/3/22.
 */

public class StandardUtil {

    /**
     * "v1", "v2", "v3", "v4",
     * 剩余电流, 温度1, 温度2, 温度3
     * "ia", "ib", "ic"
     * A相电流, B相电流, C相电流
     */
    private static final int[] thresholds = new int[]{
            300, 45, 45, 45,
            3, 3, 3
    };

    /**
     * "ua", "ub", "uc",
     * A相电压, B相电压, C相电压
     * <p>
     * <205 黄色, 205-235 绿色, >235 红色
     */
    private static final int[] thresholdsVoltage = new int[]{
            205, 235
    };

    /**
     * 黄色，绿色，红色
     */
    private static final String[] colorStr = new String[]{
            "#F6B54E", "#60CC86", "#EA654F"
    };

    public static List<Integer> getElectricalThresholds(String key) {
        List<Integer> list = new ArrayList<>();
        switch (key) {
            case "v1":
                list.add(thresholds[0]);
                break;
//            case "v2":
//                list.add(thresholds[1]);
//                break;
//            case "v3":
//                list.add(thresholds[2]);
//                break;
//            case "v4":
//                list.add(thresholds[3]);
//                break;
//            case "ia":
//                list.add(thresholds[4]);
//                break;
//            case "ib":
//                list.add(thresholds[5]);
//                break;
//            case "ic":
//                list.add(thresholds[6]);
//                break;
            case "ua":
                list.add(thresholdsVoltage[0]);
                list.add(thresholdsVoltage[1]);
                break;
            case "ub":
                list.add(thresholdsVoltage[0]);
                list.add(thresholdsVoltage[1]);
                break;
            case "uc":
                list.add(thresholdsVoltage[0]);
                list.add(thresholdsVoltage[1]);
                break;
        }

        return list;
    }

    /**
     * 各类传感器的报警阈值
     *
     * @param key
     * @return
     */
    public static int getElectricalStatusColor(String key, Float value) {

        int color = Color.parseColor(colorStr[1]);

        switch (key) {
            case "v1":
                if (value > thresholds[0]) {
                    color = Color.parseColor(colorStr[0]);
                } else {
                    color = Color.parseColor(colorStr[1]);
                }
                break;
//            case "v2":
//                if (value > thresholds[1]) {
//                    color = Color.parseColor(colorStr[0]);
//                } else {
//                    color = Color.parseColor(colorStr[1]);
//                }
//                break;
//            case "v3":
//                if (value > thresholds[2]) {
//                    color = Color.parseColor(colorStr[0]);
//                } else {
//                    color = Color.parseColor(colorStr[1]);
//                }
//                break;
//            case "v4":
//                if (value > thresholds[3]) {
//                    color = Color.parseColor(colorStr[0]);
//                } else {
//                    color = Color.parseColor(colorStr[1]);
//                }
//                break;
//            case "ia":
//                if (value > thresholds[4]) {
//                    color = Color.parseColor(colorStr[0]);
//                } else {
//                    color = Color.parseColor(colorStr[1]);
//                }
//                break;
//            case "ib":
//                if (value > thresholds[5]) {
//                    color = Color.parseColor(colorStr[0]);
//                } else {
//                    color = Color.parseColor(colorStr[1]);
//                }
//                break;
//            case "ic":
//                if (value > thresholds[6]) {
//                    color = Color.parseColor(colorStr[0]);
//                } else {
//                    color = Color.parseColor(colorStr[1]);
//                }
//                break;

            case "ua":
                if (value > thresholdsVoltage[1]) {                                        // >235
                    color = Color.parseColor(colorStr[2]);
                } else if (value <= thresholdsVoltage[1] && value > thresholdsVoltage[0]) { // >205  <=235
                    color = Color.parseColor(colorStr[1]);
                } else {                                                                  // <=205
                    color = Color.parseColor(colorStr[0]);
                }
                break;
            case "ub":
                if (value > thresholdsVoltage[1]) {                                        // >235
                    color = Color.parseColor(colorStr[2]);
                } else if (value <= thresholdsVoltage[1] && value > thresholdsVoltage[0]) { // >205  <=235
                    color = Color.parseColor(colorStr[1]);
                } else {                                                                  // <=205
                    color = Color.parseColor(colorStr[0]);
                }
                break;
            case "uc":
                if (value > thresholdsVoltage[1]) {                                        // >235
                    color = Color.parseColor(colorStr[2]);
                } else if (value <= thresholdsVoltage[1] && value > thresholdsVoltage[0]) { // >205  <=235
                    color = Color.parseColor(colorStr[1]);
                } else {                                                                  // <=205
                    color = Color.parseColor(colorStr[0]);
                }
                break;

        }

        return color;
    }

}
